package com.itlaobing.response.captcha;

import chai.ningning.foundation.support.GraphicHelper;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;

@WebServlet( "/captcha/*" )
public class CaptchaSevlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        // 设置将来向客户端发送的内容的MIME类型
        response.setHeader( "content-type" , "image/jpg" ); // setContentType

        // 获得可以向 HttpServletResponses实例 的缓冲区中输出数据的字节输出流
        OutputStream out = response.getOutputStream(); // HttpServletResponses实例 的缓冲区中的数据最终被 容器封装到 HTTP响应 中

        // 调用 foundation 模块中的 工具类 来产生图片验证码并输出到 HttpServletResponses实例 的缓冲区
        String code = GraphicHelper.create(4,false,100,40,out,50);
        this.log( "本次产生的验证码图片内容是 " + code );

        // 通常情况是，当当前的 service 方法执行完毕时，
        // 容器会将 HttpServletResponses实例 中的数据 封装成 HTTP响应 并发送给 Web客户端 (比如浏览器)
    }
}
